/**
 * Created by pankajmishra on 20/12/14.
 */

define(['jquery',
    'module/discussion/discussion',
    'module/home/customEvent'
], function($, discussion, customEvent){

    var clickEventHandle = function(){
        $('.sidebar ul li.nav-heading a').once('click',clickEventHandle);
        $('.sidebar ul li.nav-heading a').removeClass('selected');
        $('.sidebar ul li.nav-heading ul').hide();
        $(this).addClass('selected');
        $(this).off('click');
        switch($(this).data('module')){
            case 'home':
                require(['module/home'], function(home){
                    home.startUpdate();
                });
                break;
            case 'discussion':


                require(['module/common/fetchUpdateType', 'module/discussion/item'], function(update, item){
                    update.render(
                        {
                            prepend : function(value){
                                $(".main-content").children('.update-area').children('ul').prepend(item(value)).slideDown();
                            },
                            append : function(value) {
                                $('.js_'+customEvent.UPDATE_DISCUSSION).children('ul').append(item(value)).slideDown();
                            },
                            eventName : customEvent.UPDATE_DISCUSSION,
                            homeTemplate : 'discussion-home',
                            url : '/user/getDiscussion'
                        }
                    );
                    $('.main-content').find('.agenda-form').show();
                    update.create($("#updateInput"), {updateType : '5', addTitle: true});
                });

                $('.main-content').find('.agenda-form').show();
              //  discussion.create($("#updateInput"), {updateType : '5', addTitle: true});
                // $(this).parent().children('ul').show();
                break;
            case 'ndiscussion':
                $('.main-content').find('.agenda-form').show();
                $(this).parent().parent().show();
                discussion.create($("#updateInput"), {updateType : '5', addTitle: true});
                break;
            case 'info' :
                require(['module/common/fetchUpdateType', 'module/info/item'], function(update, item){
                    update.render(
                        {
                            prepend : function(value){
                                $(".main-content").children('.update-area').prepend(item(value)).slideDown();
                            },
                            append : function(value) {
                                $('.js_'+customEvent.UPDATE_INFO).append(item(value)).slideDown();
                            },
                            eventName : customEvent.UPDATE_INFO,
                            homeTemplate : 'info-home',
                            url : '/info/get'
                        }
                    );
                    $('.main-content').find('.agenda-form').show();
                    update.create($("#updateInput"), {updateType : '2', addTitle: true});
                });

                break;
            case 'notice' :
                // $(this).parent().children('ul').show();
                require(['module/common/fetchUpdateType', 'module/notice/item'], function(update, item){
                    update.render(
                        {
                            prepend : function(value){
                                $(".main-content").children('.update-area').children('ul').prepend(item(value)).slideDown();
                            },
                            append : function(value) {
                                $('.js_'+customEvent.UPDATE_NOTICE).children('ul').append(item(value)).slideDown();
                            },
                            eventName : customEvent.UPDATE_NOTICE,
                            homeTemplate : 'notice-home',
                            url : '/notice/getNotice'
                        }
                    );
                    $('.main-content').find('.agenda-form').show();
                    update.create($("#updateInput"), {updateType : '3', addTitle: false});
                });
                break;
            case 'nnotice' :
                $(this).parent().parent().show();
                $('.main-content').find('.agenda-form').show();
                $(this).parent().parent().show();
                require(['module/notice/notice'], function(notice){
                    notice.create($("#updateInput"), {updateType : '3', addTitle: false});
                });
                break;
            case 'poll' :
                require(['module/home/createAgenda'], function(createAgenda){


                    require([
                        'module/common/fetchUpdateType',
                        'module/discussion/item',
                        'module/home/moduleFactory'
                    ], function(update, item, moduleFactory){
                        update.render(
                            {
                                prepend : function(value){
                                    $(".main-content").children('.update-area').prepend(moduleFactory(value)).slideDown();
                                },
                                append : function(value) {
                                    $('.js_'+customEvent.UPDATE_VOTE).append(moduleFactory(value)).slideDown();
                                },
                                eventName : customEvent.UPDATE_VOTE,
                                homeTemplate : 'vote-home',
                                url : '/user/getVote'
                            }
                        );
                        createAgenda.render();
                    });


                   // $('.main-content').find('.agenda-form').show();
                   // update.create($("#updateInput"), {updateType : '2', addTitle: true});
                });
                break;
            case 'bpeople' :
                require(['module/people/render'], function(people){
                    people.render({url : '/people/getBlockPeople'});
                });
                break;
            case 'apeople' :
                require(['module/people/render'], function(people){
                    people.render({url : '/people/getApartmentPeople'});
                });
                break;
        }
    };

    customEvent.bindEvent(customEvent.FREE_MENU, function(event){
        $('.sidebar ul li.nav-heading a').once('click',clickEventHandle);
        $('.sidebar ul li.nav-heading a').removeClass('selected');
    });


    return function(){
        $('.sidebar ul li.nav-heading a').once('click',clickEventHandle);
    };
});